// pages/my/myConsult/myEVA/myEVA.js
let app = getApp()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    url:'',
    starCount: 0, // 当前评分
      stars: [0, 1, 2, 3, 4], // 5个星星
      isAnonymous: false, // 是否匿名
      comment: "", // 评论内容
      consultantIds:0,
      id:0,
      consultants:'',
  },
  tianjia(){
    const anonymity = this.data.isAnonymous ? 1 : 0;
  
    // 2. 生成符合后端格式的评价时间（yyyy-MM-dd）
    const date = new Date();
    const year = date.getFullYear();
    const month = (date.getMonth() + 1).toString().padStart(2, '0'); // 月份+1，补0
    const day = date.getDate().toString().padStart(2, '0');
    const evaluationTime = `${year}-${month}-${day}`; // 格式：2025-08-30
    
    // 3. 构造提交数据（字段名与后端实体类严格一致）
    const evaluationData = {
      consultantId: this.data.id, // 咨询师ID（正确）
      userId: app.globalData.userId, // 用户ID（正确）
      star: this.data.starCount, // 星级：前端score→后端star（关键修改）
      content: this.data.comment.trim(), // 评价内容：前端comment→后端content（关键修改）
      anonymity: anonymity, // 匿名状态：转换为int（关键修改）
      evaluationTime: evaluationTime, // 评价时间（补充必填字段）
      myConsultId: this.data.myConsultId // 关联的咨询记录ID（补充必填字段，需从页面参数获取）
    };
    wx.request({
      url: this.data.url+'ConsultantEvaluation',
      method:"POST",
      data: evaluationData,
      success: (res) => {
        if (res.data.code === 200) {
          wx.showToast({
            title: '评价内容提交成功',
            icon: 'success',
            duration: 1200
          });
          // 提交成功后，调用状态更新接口（标记为“已评价”）
          this.handleAssessment({
            currentTarget: {
              dataset: {
                consultantid: this.data.id, // 传递咨询师ID
                index: 0 // 若需更新列表状态，可传递列表索引（当前页无列表，暂传0）
              }
            }
          });
        } else {
          wx.showToast({
            title: res.data.msg || '评价提交失败',
            icon: 'none'
          });
        }
      },
      fail: (err) => {
        console.error('提交评价失败', err);
        wx.showToast({
          title: '网络异常，请稍后重试',
          icon: 'none'
        });
      }
      
    })
  },
  pingjia(){
    // console.log(this.data.id);
    wx.request({
      url: this.data.url+'consultant/'+this.data.id,
      method:"GET",
      success:re=>{
        this.setData({
          consultants:re.data.data
        })
      }
    })
  },
  // 点击星星
  selectStar(e) {
    let index = e.currentTarget.dataset.index;
    this.setData({
      starCount: index + 1
    });
  },

  // 输入评价
  onInput(e) {
    this.setData({
      comment: e.detail.value
    });
  },

  // 匿名选择
  onAnonymousChange(e) {
    this.setData({
      isAnonymous: e.detail.value.length > 0
    });
  },

  // 提交评价
  submit() {
     // 1. 校验是否选择评分
  if (this.data.starCount === 0) {
    wx.showToast({
      title: '请先选择评分',
      icon: 'none'
    });
    return;
  }

  // 2. （可选）校验评价内容长度（避免过长）
  if (this.data.comment.trim().length > 500) {
    wx.showToast({
      title: '评价内容不能超过500字',
      icon: 'none'
    });
    return;
  }

  // 3. 关键：调用tianjia()方法，提交数据到数据库
  this.tianjia();

  // 注意：删除原有的“提交成功”提示（因为tianjia()里会根据接口结果提示，避免提前提示造成误解）
  // 原冗余代码：
  // wx.showToast({ title: '提交成功', icon: 'success' });
  // console.log("提交的数据：", {...}); // 日志可保留，用于调试
  },
  handleAssessment(e) {
    const consultIds = e.currentTarget.dataset.consultantid; // 咨询师ID
    const itemIndex = e.currentTarget.dataset.index; // 列表索引（备用）

    this.setData({
      consultantIds: this.data.id
    });

    // 调用后端PUT接口更新评价状态（如“待评价”→“已评价”）
    wx.request({
      url: this.data.url + 'myconsult/updateAss/' + this.data.id, // 后端状态更新接口
      method: 'PUT',
      success: (resp) => {
        if (resp.data.code === 200) {
          wx.showToast({
            title: '评价完成！',
            icon: 'success',
            duration: 1200
          });

          // 4. 评价完成后返回上一页（并刷新上一页数据）
          setTimeout(() => {
            wx.navigateBack({
              delta: 1, // 返回上一页
              success: () => {
                // 通知上一页刷新数据（避免缓存的“待评价”状态）
                const pages = getCurrentPages();
                const prevPage = pages[pages.length - 2]; // 上一页实例
                if (prevPage && prevPage.getmyConsult) {
                  prevPage.getmyConsult(); // 调用上一页的“获取咨询列表”方法
                }
              }
            });
          }, 1200);
        } else {
          wx.showToast({
            title: resp.data.msg || '评价状态更新失败',
            icon: 'none',
            duration: 1500
          });
        }
      },
      fail: () => {
        wx.showToast({
          title: '网络异常，无法更新评价状态',
          icon: 'none',
          duration: 1500
        });
      }
    });
  },
  

  // handleAssessment(e) {
  //   // console.log("当前触发事件的元素：", e.currentTarget);
  //   // console.log("元素的 dataset 数据：", e.currentTarget.dataset);
  //   const consultIds = e.currentTarget.dataset.consultantid;
  //   const itemIndex = e.currentTarget.dataset.index;
  //   this.setData({
  //     consultantIds:consultIds
  //   })
  //   // 这里可以根据实际需求实现评价功能
  //   // 简单实现：直接标记为已评价
  //   wx.showModal({
  //     title: '确认评价',
  //     content: '确认完成评价吗？',
  //     success: (res) => {
  //       if (res.confirm) {
  //         // 调用后端接口更新评价状态
  //         wx.request({
  //           url: this.data.url + 'myconsult/updateAss/'+this.data.consultantIds,
  //           method: 'PUT',
  //           success: (resp) => {
  //             if (resp.data.code === 200) {
  //               wx.showToast({ title: '评价成功' });
                
  //               // 方案1: 重新拉取数据
  //               this.getmyConsult();
                
  //               // 方案2: 本地更新状态（可选）
  //               // const newConsults = [...this.data.consults];
  //               // newConsults[itemIndex].assessStatus = "已评价";
  //               // this.setData({
  //               //   consults: newConsults
  //               // });
  //             } else {
  //               wx.showToast({ title: resp.data.msg || '评价失败', icon: 'none' });
  //             }
  //           },
  //           fail: () => {
  //             wx.showToast({ title: '网络异常', icon: 'none' });
  //           }
  //         });
  //       }
  //     }
  //   });
  // },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.setData({
      url:app.globalData.url,
      id:options.consultantId,
      myConsultId: options.consultantId
    })
    this.pingjia()
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})